#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    initWidget();
    initSignal();
}

MainWindow::~MainWindow()
{
    delete ui;
    // 这里直接delete掉有问题：程序退出崩溃！这两个控件设置的设置为setCentralWidget有可能还是QT事件循环中
    // 直接delete程序强制退出
    // 使用Qt对象树
    // if(m_login_dlg){delete m_login_dlg;}
    // if(m_register_dlg){delete m_register_dlg;}
}

void MainWindow::initWidget()
{
    // 为什么这里传入this会有两个窗口？Dialog的特性！这里用widget可能会更好
    m_login_dlg = new LoginDialog(this);
    this->setCentralWidget(m_login_dlg);

    // Dialog嵌入setCentralWidget
    m_login_dlg->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);

    m_register_dlg = new RegisterDialog(this);
    m_register_dlg->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
}

void MainWindow::initSignal()
{
    connect(m_login_dlg,&LoginDialog::sig_switchRegister,this,[=](){
        this->setCentralWidget(m_register_dlg);
        m_login_dlg->show();
    });
}
